//
//  UPKeychainManager.h
//  Uang Pasti
//
//  Created by 李永彬 on 2025/8/16.
//

static NSString * _Nonnull const identifyVersionKey = @"uang_identifyVersionKey";

#import <Foundation/Foundation.h>

NS_ASSUME_NONNULL_BEGIN

@interface UPKeychainManager : NSObject

/// 单例方法
+ (instancetype)sharedManager;

/**
 * 保存数据到Keychain
 * @param data 要存储的数据
 * @param key 存储键
 * @return 是否成功
 */
- (BOOL)saveData:(id)data forKey:(NSString *)key;

/**
 * 读取Keychain中的数据
 * @param key 存储键
 * @return 存储的数据
 */
- (nullable id)readDataForKey:(NSString *)key;

/**
 * 删除Keychain中的数据
 * @param key 存储键
 * @return 是否成功
 */
- (BOOL)deleteDataForKey:(NSString *)key;

/**
 * 保存字符串到Keychain
 * @param string 要存储的字符串
 * @param key 存储键
 * @return 是否成功
 */
- (BOOL)saveString:(NSString *)string forKey:(NSString *)key;

/**
 * 读取Keychain中的字符串
 * @param key 存储键
 * @return 存储的字符串
 */
- (nullable NSString *)readStringForKey:(NSString *)key;

@end

NS_ASSUME_NONNULL_END
